using System;

namespace Gj
{
    public class HexOrientation
    {
        public static readonly HexOrientation LayoutPointy
            = new(Math.Sqrt(3.0), Math.Sqrt(3.0) / 2.0, 0.0, 3.0 / 2.0,
                Math.Sqrt(3.0) / 3.0, -1.0 / 3.0, 0.0, 2.0 / 3.0,
                0.5);

        public static readonly HexOrientation LayoutFlat
            = new(3.0 / 2.0, 0.0, Math.Sqrt(3.0) / 2.0, Math.Sqrt(3.0),
                2.0 / 3.0, 0.0, -1.0 / 3.0, Math.Sqrt(3.0) / 3.0,
                0.0);

        internal double b0, b1, b2, b3;
        internal double f0, f1, f2, f3;
        internal double start_angle; // in multiples of 60°

        public HexOrientation(double f0_, double f1_, double f2_, double f3_,
            double b0_, double b1_, double b2_, double b3_,
            double start_angle_)
        {
            f0 = f0_;
            f1 = f1_;
            f2 = f2_;
            f3 = f3_;
            b0 = b0_;
            b1 = b1_;
            b2 = b2_;
            b3 = b3_;
            start_angle = start_angle_;
        }
    }
}